package cl.loso.melon.server.negocio;

import java.util.List;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import cl.loso.melon.server.model.UsuarioLVS;
import cl.loso.melon.server.persistencia.UsuarioLVSDAO;

public class UsuarioLVSBO {
	private static Log log = LogFactory.getLog(UsuarioLVSBO.class);
	
	public static void guardarUsuarioLVS(String nombres,
			String apepa,
			String apema,
			String email,
			char perfil,
			String cargo,
			String meta,
			String idNegocio,
			String idGerencia,String idCargo) throws Exception {
		try {

			UsuarioLVSDAO.insertar(
					nombres.toLowerCase().trim(),
					apepa.toLowerCase().trim(),
					apema.toLowerCase().trim(),
					email.toLowerCase().trim(),
					perfil,
					cargo.toLowerCase().trim(),
					Long.valueOf(meta),
					Long.valueOf(idNegocio),
					Long.valueOf(idGerencia),
					Long.valueOf(idCargo)
					);
		} catch (Exception e) {
			log.error(e.getMessage());
			throw e;
		}
	}
	public static List<UsuarioLVS> obtenerUsuarioLVS() throws Exception {
		try {
			return UsuarioLVSDAO.obtener();
		} catch (Exception e) {
			log.error(e.getMessage());
			throw e;
		}
	}

	public static List<UsuarioLVS> obtenerUsuarioPorNombreLVS(String nombres) throws Exception {
		try {
			return UsuarioLVSDAO.buscarUsuarioPorNombre(nombres);
		} catch (Exception e) {
			log.error(e.getMessage());
			throw e;
		}
	}	
	
	public static List<UsuarioLVS> obtenerUsuarioPorEmailLVS(String email) throws Exception {
		try {
			return UsuarioLVSDAO.buscarUsuarioPorEmail(email);
		} catch (Exception e) {
			log.error(e.getMessage());
			throw e;
		}
	}		
	
	
	public static UsuarioLVS editarUsuarioLVS(String id) throws Exception {
		try {
			return UsuarioLVSDAO.getUsuarioLVSbyId(Long.valueOf(Long.parseLong(id)));
		} catch (Exception e) {
			log.error(e.getMessage());
			throw e;

		}
	}	
	
	public static UsuarioLVS editarUsuario(Long id) throws Exception {
		try {
			return UsuarioLVSDAO.getUsuarioLVSbyId(id);
		} catch (Exception e) {
			log.error(e.getMessage());
			throw e;

		}
	}	
	
	public static void actualizarGerenciaUsuarioLVS(
			String idGerencia) throws Exception {
		try {
			UsuarioLVSDAO.actualizarGerencia(Long.valueOf(idGerencia));

		} catch (Exception e) {
			log.error("UsuarioLVSBO:actualizarUsuarioLVS " + e.getMessage());
			throw e;
		}
	}	
	
	public static void actualizarUsuarioLVS(String id,
			String nombres,
			String apepa,
			String apema,
			String email,
			char perfil,
			String cargo,
			String meta,
			String idNegocio,
			String idGerencia,String idCargo) throws Exception {
		try {
			//log.info("Long.valueOf(idNegocio) " + Long.valueOf(idNegocio));
			//log.info("Long.valueOf(idGerencia) " + Long.valueOf(idGerencia));
			UsuarioLVSDAO.actualizar(Long.valueOf(id),
					 nombres.toLowerCase().trim(),
					 apepa.toLowerCase().trim(),
					 apema.toLowerCase().trim(),
					 email.toLowerCase().trim(),
					 perfil,
					 cargo.toLowerCase().trim(),
					 Long.valueOf(meta),
					 Long.valueOf(idNegocio),
					 Long.valueOf(idGerencia),
					 Long.valueOf(idCargo));

		} catch (Exception e) {
			log.error("UsuarioLVSBO:actualizarUsuarioLVS " + e.getMessage());
			throw e;
		}
	}
	
	public static void borrarUsuarioLVS(String id) throws Exception {
		try {
			UsuarioLVSDAO.borrar(Long.valueOf(Long.parseLong(id)));
		} catch (Exception e) {
			log.error(e.getMessage());
			throw e;
		}
	}	
}
